package com.openapi.alipay.trade.query;

import java.util.List;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.openapi.alipay.AlipayResponse;
import com.openapi.alipay.trade.FundBill;

/**
 * 统一收单线下交易查询－响应参数
 *
 * @author Moyq5
 * @since 2016年7月25日
 */
public class AlipayTradeQueryResponse extends AlipayResponse {

	/**
	 * 支付宝店铺编号<br>
	 * 最长64，如：2015040900077001000100001232
	 */
	@JsonProperty("alipay_store_id")
	private String alipayStoreId;
	
	/**
	 * 买家支付宝账号<br>
	 * 必填；最长100
	 */
	@JsonProperty("buyer_logon_id")
	private String buyerLogonId;
	
	/**
	 * 买家实付金额，单位为元，两位小数。<br>
	 * 最长11，如8.88
	 */
	@JsonProperty("buyer_pay_amount")
	private Float buyerPayAmount;
	
	/**
	 * 买家在支付宝的用户id <br>
	 * 必填，最长16，如：2088101117955611
	 */
	@JsonProperty("buyer_user_id")
	private String buyerUserId;
	
	/**
	 * 本次交易支付所使用的单品券优惠的商品优惠信息<br>
	 * 必填，如：<br>
	 * [{"goods_id":"STANDARD1026181538","goods_name":"雪碧","discount_amount":"100.00","voucher_id":"2015102600073002039000002D5O"}]
	 */
	@JsonProperty("discount_goods_detail")
	private String discountGoodsDetail;
	
	/**
	 * 交易支付使用的资金渠道<br>
	 * 必填
	 */
	@JsonProperty("fund_bill_list")
	private List<FundBill> fundBillList;
	
	/**
	 * 行业特殊信息（例如在医保卡支付业务中，向用户返回医疗信息）。<br>
	 * 最长4096，如：<br>
	 * {"registration_order_pay":{"brlx":"1","cblx":"1"}}
	 */
	@JsonProperty("industry_sepc_detail")
	private String industrySepcDetail;
	
	/**
	 * 交易中用户支付的可开具发票的金额，单位为元，两位小数。<br>
	 * 最长11，如：12.11
	 */
	@JsonProperty("invoice_amount")
	private Float invoiceAmount;

	/**
	 * 买家支付宝用户号，该字段将废弃，不要使用<br>
	 * 选填；长度32
	 */
	@JsonProperty("open_id")
	private String openId;

	/**
	 * 商家订单号<br>
	 * 必填；最长64
	 */
	@JsonProperty("out_trade_no")
	private String outTradeNo;
	
	/**
	 * 积分支付的金额，单位为元，两位小数。<br>
	 * 最长11，如：10
	 */
	@JsonProperty("point_amount")
	private Integer pointAmount;
	
	/**
	 * 实收金额，单位为元，两位小数。<br>
	 * 必填，最长11， 如：15.25
	 */
	@JsonProperty("receipt_amount")
	private String receiptamount;
	
	/**
	 * 本次交易打款给卖家的时间<br>
	 * 必填，最长32，如：2014-11-27 15:45:57
	 */
	@JsonProperty("send_pay_date")
	private String sendPayDate;
	
	/**
	 * 商户门店编号<br>
	 * 最长32，如：NJ_S_001
	 */
	@JsonProperty("store_id")
	private String storeId;
	
	/**
	 * 请求交易支付中的商户店铺的名称<br>
	 * 最长512，如：证大五道口店
	 */
	@JsonProperty("store_name")
	private String storeName;
	
	/**
	 * 商户机具终端编号<br>
	 * 最长32
	 */
	@JsonProperty("terminal_id")
	private String terminalId;
	
	/**
	 * 交易的订单金额，单位为元，两位小数。<br>
	 * 必填；最长11；如：88.88
	 */
	@JsonProperty("total_amount")
	private Float totalAmount;

	/**
	 * 支付宝交易号<br>
	 * 必填;最长64
	 */
	@JsonProperty("trade_no")
	private String tradeNo;
	
	/**
	 * 交易状态：<br>
	 * WAIT_BUYER_PAY（交易创建，等待买家付款）、<br>
	 * TRADE_CLOSED（未付款交易超时关闭，或支付完成后全额退款）、<br>
	 * TRADE_SUCCESS（交易支付成功）、<br>
	 * TRADE_FINISHED（交易结束，不可退款）<br>
	 * 必填；最长32
	 */
	@JsonProperty("trade_status")
	private String tradeStatus;

	/**
	 * 支付宝店铺编号<br>
	 * 最长64，如：2015040900077001000100001232
	 * @return 支付宝店铺编号
	 */
	public String getAlipayStoreId() {
		return alipayStoreId;
	}

	/**
	 * 支付宝店铺编号<br>
	 * 最长64，如：2015040900077001000100001232
	 * @param alipayStoreId 支付宝店铺编号
	 */
	public void setAlipayStoreId(String alipayStoreId) {
		this.alipayStoreId = alipayStoreId;
	}

	/**
	 * 买家支付宝账号<br>
	 * 必填；最长100
	 * @return 买家支付宝账号
	 */
	public String getBuyerLogonId() {
		return buyerLogonId;
	}

	/**
	 * 买家支付宝账号<br>
	 * 必填；最长100
	 * @param buyerLogonId 买家支付宝账号
	 */
	public void setBuyerLogonId(String buyerLogonId) {
		this.buyerLogonId = buyerLogonId;
	}

	/**
	 * 买家实付金额，单位为元，两位小数。<br>
	 * 最长11，如8.88
	 * @return 买家实付金额
	 */
	public Float getBuyerPayAmount() {
		return buyerPayAmount;
	}

	/**
	 * 买家实付金额，单位为元，两位小数。<br>
	 * 最长11，如8.88
	 * @param buyerPayAmount 买家实付金额
	 */
	public void setBuyerPayAmount(Float buyerPayAmount) {
		this.buyerPayAmount = buyerPayAmount;
	}

	/**
	 * 买家在支付宝的用户id <br>
	 * 必填，最长16，如：2088101117955611
	 * @return 买家在支付宝的用户id
	 */
	public String getBuyerUserId() {
		return buyerUserId;
	}

	/**
	 * 买家在支付宝的用户id <br>
	 * 必填，最长16，如：2088101117955611
	 * @param buyerUserId 买家在支付宝的用户id
	 */
	public void setBuyerUserId(String buyerUserId) {
		this.buyerUserId = buyerUserId;
	}

	/**
	 * 本次交易支付所使用的单品券优惠的商品优惠信息<br>
	 * 必填，如：<br>
	 * [{"goods_id":"STANDARD1026181538","goods_name":"雪碧","discount_amount":"100.00","voucher_id":"2015102600073002039000002D5O"}]
	 * @return 本次交易支付所使用的单品券优惠的商品优惠信息
	 */
	public String getDiscountGoodsDetail() {
		return discountGoodsDetail;
	}

	/**
	 * 本次交易支付所使用的单品券优惠的商品优惠信息<br>
	 * 必填，如：<br>
	 * [{"goods_id":"STANDARD1026181538","goods_name":"雪碧","discount_amount":"100.00","voucher_id":"2015102600073002039000002D5O"}]
	 * @param discountGoodsDetail 本次交易支付所使用的单品券优惠的商品优惠信息
	 */
	public void setDiscountGoodsDetail(String discountGoodsDetail) {
		this.discountGoodsDetail = discountGoodsDetail;
	}

	/**
	 * 交易支付使用的资金渠道<br>
	 * 必填
	 * @return 交易支付使用的资金渠道
	 */
	public List<FundBill> getFundBillList() {
		return fundBillList;
	}

	/**
	 * 交易支付使用的资金渠道<br>
	 * 必填
	 * @param fundBillList 交易支付使用的资金渠道
	 */
	public void setFundBillList(List<FundBill> fundBillList) {
		this.fundBillList = fundBillList;
	}

	/**
	 * 行业特殊信息（例如在医保卡支付业务中，向用户返回医疗信息）。<br>
	 * 最长4096，如：<br>
	 * {"registration_order_pay":{"brlx":"1","cblx":"1"}}
	 * @return
	 */
	public String getIndustrySepcDetail() {
		return industrySepcDetail;
	}

	/**
	 * 行业特殊信息（例如在医保卡支付业务中，向用户返回医疗信息）。<br>
	 * 最长4096，如：<br>
	 * {"registration_order_pay":{"brlx":"1","cblx":"1"}}
	 * @param industrySepcDetail
	 */
	public void setIndustrySepcDetail(String industrySepcDetail) {
		this.industrySepcDetail = industrySepcDetail;
	}

	/**
	 * 交易中用户支付的可开具发票的金额，单位为元，两位小数。<br>
	 * 最长11，如：12.11
	 * @return 交易中用户支付的可开具发票的金额
	 */
	public Float getInvoiceAmount() {
		return invoiceAmount;
	}

	/**
	 * 交易中用户支付的可开具发票的金额，单位为元，两位小数。<br>
	 * 最长11，如：12.11
	 * @param invoiceAmount 交易中用户支付的可开具发票的金额
	 */
	public void setInvoiceAmount(Float invoiceAmount) {
		this.invoiceAmount = invoiceAmount;
	}

	/**
	 * 买家支付宝用户号，该字段将废弃，不要使用<br>
	 * 选填；长度32
	 * 
	 * @return 买家支付宝用户号
	 */
	public String getOpenId() {
		return openId;
	}

	/**
	 * 买家支付宝用户号，该字段将废弃，不要使用<br>
	 * 选填；长度32
	 * 
	 * @param openId
	 *            买家支付宝用户号
	 */
	public void setOpenId(String openId) {
		this.openId = openId;
	}

	/**
	 * 商家订单号<br>
	 * 必填；最长64
	 * 
	 * @return 商家订单号
	 */
	public String getOutTradeNo() {
		return outTradeNo;
	}

	/**
	 * @param outTradeNo
	 *            商家订单号
	 */
	public void setOutTradeNo(String outTradeNo) {
		this.outTradeNo = outTradeNo;
	}

	/**
	 * 积分支付的金额，单位为元，两位小数。<br>
	 * 最长11，如：10
	 * @return 积分支付的金额
	 */
	public Integer getPointAmount() {
		return pointAmount;
	}

	/**
	 * 积分支付的金额，单位为元，两位小数。<br>
	 * 最长11，如：10
	 * @param pointAmount 积分支付的金额
	 */
	public void setPointAmount(Integer pointAmount) {
		this.pointAmount = pointAmount;
	}

	/**
	 * 实收金额，单位为元，两位小数。<br>
	 * 必填，最长11， 如：15.25
	 * @return 实收金额
	 */
	public String getReceiptamount() {
		return receiptamount;
	}

	/**
	 * 实收金额，单位为元，两位小数。<br>
	 * 必填，最长11， 如：15.25
	 * @param receiptamount 实收金额
	 */
	public void setReceiptamount(String receiptamount) {
		this.receiptamount = receiptamount;
	}

	/**
	 * 本次交易打款给卖家的时间<br>
	 * 必填，最长32，如：2014-11-27 15:45:57
	 * @return 本次交易打款给卖家的时间
	 */
	public String getSendPayDate() {
		return sendPayDate;
	}

	/**
	 * 本次交易打款给卖家的时间<br>
	 * 必填，最长32，如：2014-11-27 15:45:57
	 * @param sendPayDate 本次交易打款给卖家的时间
	 */
	public void setSendPayDate(String sendPayDate) {
		this.sendPayDate = sendPayDate;
	}

	/**
	 * 商户门店编号<br>
	 * 最长32，如：NJ_S_001
	 * @return
	 */
	public String getStoreId() {
		return storeId;
	}

	/**
	 * 商户门店编号<br>
	 * 最长32，如：NJ_S_001
	 * @param storeId
	 */
	public void setStoreId(String storeId) {
		this.storeId = storeId;
	}

	/**
	 * 请求交易支付中的商户店铺的名称<br>
	 * 最长512，如：证大五道口店
	 * @return 请求交易支付中的商户店铺的名称
	 */
	public String getStoreName() {
		return storeName;
	}

	/**
	 * 请求交易支付中的商户店铺的名称<br>
	 * 最长512，如：证大五道口店
	 * @param storeName 请求交易支付中的商户店铺的名称
	 */
	public void setStoreName(String storeName) {
		this.storeName = storeName;
	}

	/**
	 * 商户机具终端编号<br>
	 * 最长32
	 * @return 商户机具终端编号
	 */
	public String getTerminalId() {
		return terminalId;
	}

	/**
	 * 商户机具终端编号<br>
	 * 最长32
	 * @param terminalId 商户机具终端编号
	 */
	public void setTerminalId(String terminalId) {
		this.terminalId = terminalId;
	}

	/**
	 * 交易的订单金额，单位为元，两位小数。<br>
	 * 必填；最长11；如：88.88
	 * @return 交易的订单金额
	 */
	public Float getTotalAmount() {
		return totalAmount;
	}

	/**
	 * 交易的订单金额，单位为元，两位小数。<br>
	 * 必填；最长11；如：88.88
	 * @param totalAmount 交易的订单金额
	 */
	public void setTotalAmount(Float totalAmount) {
		this.totalAmount = totalAmount;
	}

	/**
	 * 支付宝交易号<br>
	 * 必填；最长64
	 * 
	 * @return 支付宝交易号
	 */
	public String getTradeNo() {
		return tradeNo;
	}

	/**
	 * 
	 * @param tradeNo
	 *            支付宝交易号
	 */
	public void setTradeNo(String tradeNo) {
		this.tradeNo = tradeNo;
	}

	/**
	 * 交易状态：<br>
	 * WAIT_BUYER_PAY（交易创建，等待买家付款）、<br>
	 * TRADE_CLOSED（未付款交易超时关闭，或支付完成后全额退款）、<br>
	 * TRADE_SUCCESS（交易支付成功）、<br>
	 * TRADE_FINISHED（交易结束，不可退款）<br>
	 * 必填；最长32
	 * @return 交易状态
	 */
	public String getTradeStatus() {
		return tradeStatus;
	}

	/**
	 * 交易状态：<br>
	 * WAIT_BUYER_PAY（交易创建，等待买家付款）、<br>
	 * TRADE_CLOSED（未付款交易超时关闭，或支付完成后全额退款）、<br>
	 * TRADE_SUCCESS（交易支付成功）、<br>
	 * TRADE_FINISHED（交易结束，不可退款）<br>
	 * 必填；最长32
	 * @param tradeStatus 交易状态
	 */
	public void setTradeStatus(String tradeStatus) {
		this.tradeStatus = tradeStatus;
	}
}
